class ClientesController < ApplicationController
  # GET /clientes
  # GET /clientes.xml

  def index
    @clientes = Cliente.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @clientes }
    end
  end

  # GET /clientes/1
  # GET /clientes/1.xml
  def show
    @cliente = Cliente.find(params[:id])
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @cliente }
    end
  end

  # GET /clientes/new
  # GET /clientes/new.xml
  def new
    @cliente = Cliente.new
    @cliente.direccions.build
    @cliente.tarjetas.build
    @cliente.nombre = params['openid.ext1.value.firstname']
   	@cliente.apellido = params['openid.ext1.value.lastname']
   	@cliente.correo = params['openid.ext1.value.email'] 
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @cliente }
    end
  end

  # GET /clientes/1/edit
  def edit
    @cliente = Cliente.find(params[:id])
  end

  # POST /clientes
  # POST /clientes.xml
  def create
    @cliente = Cliente.new(params[:cliente])
    
    respond_to do |format|
      if @cliente.save
        flash[:notice] = "Bienvenido al servicio GGNexpress"
        format.html { redirect_to(@cliente) }
        format.xml  { render :xml => @cliente, :status => :created, :location => @cliente }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @cliente.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /clientes/1
  # PUT /clientes/1.xml
  def update
    @cliente = Cliente.find(params[:id])

    respond_to do |format|
      if @cliente.update_attributes(params[:cliente])
        flash[:notice] = 'El cliente fue actualizado exitosamente.'
        format.html { redirect_to(@cliente) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @cliente.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /clientes/1
  # DELETE /clientes/1.xml
  def destroy
    @cliente = Cliente.find(params[:id])
    @cliente.destroy

    respond_to do |format|
      format.html { redirect_to(clientes_url) }
      format.xml  { head :ok }
    end
  end
  
  # SESION /clientes/3
  def sesion_clientes
    
    if  params['openid.mode'] == 'cancel'
    	
    	redirect_to root_path
    else
      @email = params['openid.ext1.value.email']
      cliente = Cliente.find(:first, :conditions => [" correo = ?", @email ])

      if cliente
     	
        session[:cliente_correo] = cliente.correo
        session[:cliente_nombre] = cliente.nombre
        session[:cliente_apellido] = cliente.apellido
        session[:cliente_id] = cliente.id
        session[:type] = "cliente"
        flash[:notice] = cliente.nombre + " " + cliente.apellido + " ha iniciado sesion!"
     
        redirect_to :controller => 'clientes', :action => 'show', :id => cliente.id
      else
        flash[:notice] = "\"" + @email + "\" no esta registrado!"
        redirect_to :controller => 'principals', :action => 'home'
      end
    end
  end
end
